Electronic devices are becoming a ubiquitous part of everyday life. The number of smartphones and personal tablet computers in use is rapidly growing. A side effect of the increasing use of smartphones and personal tablets is that increasingly the device are used for storing confidential data such as personal and banking data. Protection of this data against theft is of paramount importance.
The field of cryptography offers protection tools for keeping this confidential data safe. Based on hard to solve mathematical problems, cryptography typically requires highly computationally intensive calculations that are the main barrier to wider application in cloud and ubiquitous computing (ubicomp). If cryptographic operations cannot be performed quickly enough, cryptography tools are typically not accepted for use on the Internet. In order to be transparent while still providing security and data integrity, cryptographic tools need to follow trends driven by the need for high speed and the low power consumption needed in mobile applications.
Public key algorithms are typically the most computationally intensive calculations in cryptography. For example, take the case of Elliptic Curve Cryptography (ECC), one of the most computationally efficient public key algorithms. The 256 bit version of ECC provides security that is equivalent to a 128 bit symmetric key. A 256 bit ECC public key should provide comparable security to a 3072 bit RSA public key. The fundamental operation of ECC is a point multiplication which is an operation heavily based on modular multiplication, i.e. approximately 3500 modular multiplications of 256 bit integers are needed for performing one ECC 256 point multiplication. Higher security levels (larger bit integers) require even more computational effort.
Building an efficient implementation of ECC is typically non-trivial and involves multiple stages. FIG. 1 illustrates stages 101, 102 and 103 that are needed to realize the Elliptical Curve Digital Signature Algorithm (ECDSA), which is one of the applications of ECC. Stage 101 deals with finite field arithmetic that comprises modular addition, inversion and multiplication. Stage 102 deals with point addition and point doubling which comprises the Joint Sparse Form (JSF), Non-Adjacent Form (NAF), windowing and projective coordinates. Finally, stage 103 deals with the ECDSA and the acceptance or rejection of the digital signature.
Any elliptic curve can be written as a plane geometric curve defined by the equation of the form (assuming the characteristic of the coefficient field is not equal to 2 or 3):y2=x3+ax+b  (1)that is non-singular; that is it has no cusps or self-intersections and is known as the short Weierstrass form where a and b are integers. The case where a=−3 is typically used in several standards such as those published by NIST, SEC and ANSI which makes this the case of typical interest.
Many algorithms have been proposed in the literature for efficient implementation of the Point Addition (PDBL) and Point Doubling (PDBL) operations. Many of these algorithms are optimized for software implementation. While these are typically efficient on certain platforms, the algorithms are typically not optimal once the underlying hardware can be tailored to the algorithm.
A PDBL algorithm for Jacobian coordinates has been described by Cohen, Miyaji and Ono in Proceedings of the International Conference on the Theory and Applications of Cryptography and Information Security; Advances in Cryptology, ASIACRYPT 1998, pages 51-65, Springer-Verlag, 1998. Jacobian coordinates are projective coordinates where each point is represented as three coordinates (X, Y, Z). Note the coordinates are all integers. PDBL algorithm 200 requires 4 modular multiplications, 4 modular squarings, 4 modular subtractions, one modular addition, one modular multiplication by 2 and one modular division by 2 and is shown in FIG. 2. In order to perform the PDBL, the algorithm further requires a minimum of 3 temporary registers, which for ECC 256 bit each need to be 256 bits in size. All operations are done in the finite field K over which the elliptic curve E is defined. The finite arithmetic field K is defined over the prime number p so that all arithmetic operations are performed modulo p. The identity element is the point at infinity.